package com.bf.xpdd.service;

import java.util.List;

import com.bf.xpdd.domain.ActivityBean;
import com.bf.xpdd.domain.SiteSeller;
import com.bf.xpdd.exception.BaseException;

/**
 * 用户活动列表接口
 * 
 * @author linmu
 * 
 */
public interface ActivityService
{
	
	/**
	 * 查询所有的宝贝信息
	 */
	List<ActivityBean> queryAllActivities();

	/**
	 * 根据用户查询当前用户的所有活动信息
	 */
	List<ActivityBean> queryActivityInfoByNick(String nick);

	/**
	 * 根据活动id查询活动信息
	 */
	ActivityBean queryActivityBeanById(long id);

	/**
	 * 增加活动记录
	 */
	void addActivityBean(ActivityBean bean);

	/**
	 * 删除活动
	 */
	void delActivityBean(ActivityBean bean);

	/**
	 * 根据活动id删除活动
	 */
	void delActivityBeanById(long id);

	/**
	 * 修改活动记录
	 */
	void modifyActivityBean(ActivityBean bean);

	/**
	 * 修改活动状态,包括停止、结束
	 * @param aid 活动id
	 * @param status  需要修改的活动状态
	 * @param nick	活动创建者
	 */
	void modifyActivityStatus(int status, long aid, String nick);

	/**
	 * 分页查询数据库中活动记录
	 * @param pageNum 查询的页数
	 * @param pageSize 每页的记录条数
	 */
	List<ActivityBean> queryActivitiesByPage(int pageNum, int pageSize);

	/**
	 * 查询当月开始的活动
	 */
	List<ActivityBean> queryActivitiesByMonth(SiteSeller seller, int month) throws BaseException;
	
	/**
	 * 根据宝贝状态查询当前用户的宝贝信息
	 */
	List<ActivityBean> queryActivitiesByStatus(String nick, int status);

	/**
	 * 查询当前用户所有宝贝中使用的模板id
	 */
	List<Long> queryAllModelIds(String nick);

	/**
	 * 根据模板id查询使用该模板的宝贝
	 * 这里的模板id是本人的,不需要添加nick
	 */
	List<ActivityBean> queryActivityByModel(long modelId);

	/**
	 * 查询size个id不等于aid的活动
	 */
	List<ActivityBean> queryActivityLimit(long aid, String nick, int size);

	/**
	 * 更新折扣信息
	 * @param bean
	 * @param json
	 */
	void saveActivityDiscount(ActivityBean bean, String json);

}